有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么dispatchTouchEvent避免在屏幕上单击?

我在我的应用程序上制作了一个复活节彩蛋,需要一个触摸组合才能工作。它工作正常,但我不能在屏幕上做任何其他点击。 我的类扩展了FragmentActivity,所以我不能使用onTouchEvent。 如果我删除被重写的方法dispatchTouchEvent,我可以正常单击

我的代码:

                public class LoginActivity extends FragmentActivity implements Window.Callback {
                  private ImageView animEaster;
                  private AnimationDrawable animDrawable;

                  @Override
                  protected void onCreate(Bundle savedInstanceState) {
                   super.onCreate(savedInstanceState);
                   ....
                  }
    @Override
        public boolean dispatchTouchEvent(MotionEvent event) {
            int action = event.getAction();
            switch (action & MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_POINTER_DOWN:
                if (!isAtivado) {
                    easter = "";
                    isAtivado = true;
                    System.out.println("Ativou");
                }
                break;
            case MotionEvent.ACTION_POINTER_UP:
                int count = event.getPointerCount();
                easter += count;
                if (count <= 2) {
                    if (isAtivado) {
                        System.out.println("Desativou");
                        isAtivado = false;
                        if (easter.equals("5435432")) {
                            animEaster.setVisibility(View.VISIBLE);
                            lblProdDes.setVisibility(View.VISIBLE);
                            lblProdDes.setVisibility(View.VISIBLE);
                            if (Servidor.servidor.equals("???????")) {
                                lblProdDes.setText("DESENVOLVIMENTO");
                            } else {
                                lblProdDes.setText("PRODUÇÃO");
                            }
                            animDrawable.start();
                            new Handler().postDelayed(new Runnable() {
                                public void run() {
                                    animEaster.setVisibility(View.GONE);
                                    animEaster.setVisibility(View.GONE);
                                    lblProdDes.setVisibility(View.GONE);
                                    animDrawable.stop();
                                }
                            }, 5000);
                        }
                    }
                }
                break;
            }
            return true;
        }
....

我的复活节彩蛋有效,但点击无效


共 (1) 个答案

  1. # 1 楼答案

    在某个时刻,你需要打电话给super。dispatchTouchEvent()。否则,事件将永远不会被发送到其他视图。看起来不是“返回真值”最后应该是“return super.dispatchTouchEvent(event);”